home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
sheltool
/
gwav
/
src
/
gwav.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-09-20
|
31KB
|
991 lines
/************************************************************************/
/* PCM Player 'GWAV' V1.1 L20 */
/* */
/* üwGWAV.EXGüx */
/* */
/* Copyright(C) 1994 by âüâïâLâàü[âï */
/************************************************************************/
/* âVâFâïâAâvâèé╞é╡é─é═üAé┘é╞é±é╟ì┼Æßî└é╠é▒é╞é╡é⌐é╡é─éóé╚éóé¬üAé╞éΦéá */
/* éªé╕ô«éóé─éóéΘé╠é┼éµé╡é╞é╖éΘ(âüâéâèòsæ½Ä₧é╠ô«ì∞é╔òsê└éáéΦücé┘é╞é±é╟ */
/* æ╬ì⌠é╞é┴é─é╚éóé╡) */
/* é╚é¿üAû{ùêé═üASNDé╞WAVé╠Äæî╣é═â^âXâNÉ╪éΦæ╓éªÄ₧é╔æ▐ö≡ò£î│é╡é─éΓéτé╚ */
/* é¡é─é═é╚éτé╚éóé╠é╛é¬üAé╗éñé╖éΘé╞âoâbâNâOâëâEâôâhé┼ë╣é¬û┬éτé╚é¡é╚é┴ */
/* é─é┬é▄éτé╚éóé╠é┼üAéáéªé─ï¡ìsé╡é─éóéΘ */
/* é╛é⌐éτüAé┘é±é╞é═éáé▄éΦÉ^Äùé╡é─é┘é╡é¡é╚éóüc(^^; */
/* é╗éΩé⌐éτüAé╞é▒éδé╟é▒éδî╗éΩéΘ'EIN_'è╓Éöé═EIN(TM)âvâìâWâàâNâgé╠è╓ÉöîQ */
/* é┼üAÅIù╣Ä₧é╠ì└òWé≡ïLë»é╖éΘâèâWâàü[âÇâ}âlü[âWââé╞é╡é─Ägùpé╡é─éóéΘ */
/* GUIâëâCâuâëâèé╠è╓ÉöîQé╞é═êßéñé╠é┼üAEINTM.LIBé≡ægé▌ì₧é▄é╚éóé╞Ägùp */
/* é┼é½é╚éó */
/************************************************************************/
/* ÆìüFâRâôâpâCâïÄ₧é╔warningé¬ÅoéΘé¬üAûΓæΦé╚éóé╠é¬éφé⌐é┴é─éóéΘé╠é┼û│Äï */
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <egb.h>
#include <guidbg.h>
#include <file_dlg.h>
#include <snd.h>
#include <wav.h>
#include "eintm.h" /* EIN(TM)è┬ï½ùpâëâCâuâëâè */
char *guiEgbPtr ; /* EGB é╠âÅü[âNâAâhâîâX */
/* òöòiIDùpò╧Éöé╠ÆΦï` */
int backId = -1 ;
int quitBtnId = -1 ;
int fnameBtnId = -1 ;
int fnameMesId = -1 ;
int fileSlctId = -1 ;
int wavPlayBtnId = -1 ;
int wavStopBtnId = -1 ;
/* PCMé╠â`âââlâïÄwÆΦ */
#define ch 69
/* âèâWâàü[âÇÅεò±ô╟é▌Åæé½âoâbâtâ@é╠âTâCâY(âAâvâèî┼ùLé╚é╠é┼ùvÆ▓É«) */
#define RBUFSIZE (1024)
int mute_data ; /* ôdÄqâ{âèâàü[âÇé╠â~âàü[âgò█æ╢ùp */
int wavFlag = FALSE ; /* WAVâtâ@âCâïì─É╢âéü[âh */
char *wavBuffer = NULL ; /* PCMâfü[â^èiö[ùpâoâbâtâ@é╓é╠â|âCâôâ^ */
char fileName[32] ; /* âtâ@âCâïû╝âoâbâtâ@(ëµû╩ò\ĪÉΩùp) */
char path[80] = "\0" ; /* âpâXû╝âoâbâtâ@ */
int freq, bitno, kind, pcmLen, pcmStart ;
/* WAVâëâCâuâëâèùpâpâëâüü[â^ */
int saveDrv ; /* âJâîâôâgâhâëâCâuæ▐ö≡ùp */
char saveDir[68] = "\0" ; /* âJâîâôâgâfâBâîâNâgâèæ▐ö≡ùp */
FRAME rsmFrame ; /* âèâWâàü[âÇÄ₧é╔òKùvé╚òöòiì└òW */
char RSMID[] = "%%% PCM Player GWAV %%%" ;
/* âèâWâàü[âÇâtâ@âCâïùpé╠âLü[ò╢ÄÜù± */
char version[] = "PCM Player 'GWAV' V1.1L20" ;
/* âoü[âWâçâôò\ïL(â^âXâNû╝) */
char copyright[] = "Copyright(C)1994 âüâïâLâàü[âï(Jun Somekawa)" ;
/* Copyrightò\ïL */
/************************************************************************/
/* TownsâVâFâïî─é╤Åoé╡è╓Éö */
/************************************************************************/
int userFunc(apliId, messId, info, data)
int apliId ;
int messId ;
int info ;
int data ;
{
register int ret ;
POOLDATA *ptr ;
int sw ;
WINCTRL *pctrl ;
int dx, dy ;
HYPER hyp ;
extern char *splitFileName() ;
extern int cbAnalysis() ;
ret = ILLEGAL_FUNCTION ;
switch(messId)
{
/* âAâNâeâBâué╔é╚é┴é╜é╞é½é╠Åêù¥ */
/* òüÆ╩é═éáé▄éΦGM_WAKEÄ₧é╠Åêù¥é≡ïLÅqé╖éΘé▒é╞é═é╚éó */
case GM_WAKE :
/* éαé╡üAGWAVé¬ëµû╩èOé╔Æ╟éóÅoé│éΩé─éóéΘéµéñé╚ÅΩìçüA */
/* âAâNâeâBâué╔é╡é─éαæÇì∞é┼é½é╚é¡é╚éΘé╜é▀üAëµû╩ôαé╔ */
/* ê┌ô«é╖éΘÅêù¥é≡ìséñ */
dx = dy = 0 ;
MMI_GetControl(&pctrl) ; /* ëµû╩é╠æσé½é│é≡ĵô╛é╖éΘ */
MMI_SendMessage(backId, MM_GETHYPER, 1, &hyp) ;
if (hyp.fr.lupx > pctrl->bound.rdwx)
dx = pctrl->bound.rdwx - hyp.fr.lupx -
(hyp.fr.rdwx - hyp.fr.lupx) ;
if (hyp.fr.lupy > pctrl->bound.rdwy)
dy = pctrl->bound.rdwy - hyp.fr.lupy -
(hyp.fr.rdwy - hyp.fr.lupy) ;
if (dx != 0 || dy != 0)
{
/* ê┌ô«é╔é═üAÅ┴ïÄé╡é─ì└òWê┌ô«é╡é─é⌐éτò\Īé╖éΘé╞éóéñ */
/* Æ┤î┤ÄnôIé╚ò√û@é≡ì╠ùp */
/* é┘é±é╞é═âNâèâbâvé≡éñé▄é¡Ägé┴é─ì─ò`ëµé╡é╜é┘éñé¬ */
/* é⌐é┴é▒éóéóé±é╛é»é╟üc */
MMI_SendMessage(backId, MM_ERASE, 0) ;
MMI_SendMessage(backId, MM_MOVE, 2, dx, dy) ;
MMI_SendMessage(backId, MM_SHOW, 0) ;
}
break ;
/* âüâéâèòsæ½Ä₧é╠Åêù¥ */
/* æ╝é╠â^âXâNé┼âüâéâèé¬é╚éóéτé╡éóé╠é┼üAë≡ò·é╡é─éáé░éµéñ */
case GM_PURGE :
/* PCMâfü[â^ùpé╠âoâbâtâ@é≡Ä¥é┴é─éóé╜éτë≡ò·é╖éΘ */
if (wavBuffer != NULL)
{
TL_free(wavBuffer) ;
wavBuffer = NULL ; /* âoâbâtâ@é¬é╚éóé╠é┼üANULLé╔é╖éΘ */
ret = NOERR ;
}
break ;
/* â^âXâNÅIù╣Ä₧é╠Åêù¥ */
case GM_QUIT :
/* ì─É╢Æåé╚éτüAì─É╢é≡ÆåÄ~é╖éΘ */
/* ÆΓÄ~â{â^âôé≡ëƒé╖éµéñé╔î─é╤Åoé╡è╓Éöé≡Ä└ìsé╖éΘé╛é» */
MMI_SendMessage(quitBtnId, MM_EXEC, 2, 0, 0) ;
ret = NOERR ;
break;
/* â^âXâNé╠êΩÄ₧ÆΓÄ~Ä₧é╠Åêù¥ */
/* GM_PAUSEé╠â^âCâ~âôâOé┼é═é╞é╔é⌐é¡üAéαé╞é╠Å≤æ╘é╔ë┬ö\é╚î└éΦ */
/* ò£î│é╖éΘé▒é╞é≡ûYéΩé─é═éóé»é╚éó */
/* æ╝é╠â^âXâNé¬é╖é╫é─é╠Äæî╣é≡ÉΩùLé╖éΘë┬ö\ɽé¬éáéΘé╠é┼üA */
/* é╞é╔é⌐é¡ïNô«æOé╞é┘é┌ô»é╢Å≤æ╘é╔û▀é╖éµéñôwù═é╖éΘ */
case GM_PAUSE :
/* ì─É╢Æåé╚éτüAì─É╢é≡ÆåÄ~é╖éΘ */
/* ÆΓÄ~â{â^âôé≡ëƒé╖éµéñé╔î─é╤Åoé╡è╓Éöé≡Ä└ìsé╖éΘé╛é» */
MMI_SendMessage(wavStopBtnId, MM_EXEC, 2, 0, 0) ;
SND_elevol_mute(mute_data) ; /* â~âàü[âgÅ≤æ╘é≡û▀é╖ */
ret = NOERR ;
break ;
/* â^âXâNé╠ô«ì∞ì─èJÄ₧é╠Åêù¥ */
/* GM_PAUSEé╞ö╜æ╬é╔üAÄ⌐â^âXâNé¬ô«ì∞ë┬ö\é╔é╚éΘéµéñé╔Åêù¥é╖éΘ */
case GM_CONTINUE :
/* ì─é╤ì─É╢ë┬ö\é╚éµéñé╔ì─É▌ÆΦé≡ìséñ */
mute_data = SND_get_elevol_mute(0) ;/* â~âàü[âgÅεò±é╠ĵô╛ */
SND_elevol_mute(mute_data | 0x01) ; /* PCMé╠â~âàü[âgé≡ë≡Å£ */
ret = NOERR ;
break;
/* âvü[âïé⌐éτâfü[â^é╠æùÉMé≡Ä≤é»é╜Ä₧é╠Åêù¥ */
/* GWAVé┼é═âpâëâüü[â^ò╢ÄÜù±é≡Ä≤é»ÄµéΘé╛é» */
case GM_SENDDATA :
/* âpâëâüü[â^ò╢ÄÜù± é╠Ä≤é»ÄµéΦ */
if ((ptr = (POOLDATA *)MMI_CallMessage(MMI_GetApliId(),
GM_POOLDATA, PM_POOLID, data)) != NULL)
{
if (!strcmp((char *)&ptr->Type, POOL_STR_CB))
{
sw = cbAnalysis(ptr) ;
if (sw != ILLEGAL_FUNCTION)
{
if (info == MMI_GetApliId())
{
MMI_CallMessage(MMI_GetApliId(), GM_STACKDATA,
FALSE, data) ;
}
/* pathé╔âpâëâüü[â^ò╢ÄÜù±é¬ôⁿé┴é─éóéΘé╠é┼üA */
/* âüâbâZü[âWî^òöòié╔âtâ@âCâïû╝òöò¬é╠é▌É▌ÆΦ */
MMI_SendMessage(fnameMesId, MM_SETMSG, 1,
splitFileName(fileName, path)) ;
MMI_SendMessage(fnameMesId, MM_SHOW, 0) ;
/* PCMâfü[â^âoâbâtâ@é≡ë≡ò·é╡é─üAÅëè·ë╗é╖éΘ */
/* é╗éñé┼é╚éóé╞ÉVé╡éóâfü[â^é¬ô╟é▀é╚éó */
if (wavBuffer != NULL)
{
TL_free(wavBuffer) ;
wavBuffer = NULL ;
}
/* ë╣É║ì─É╢èJÄn */
MMI_SendMessage(wavPlayBtnId, MM_EXEC, 2, 0, 0) ;
ret = NOERR ;
}
}
}
break ;
}
return ret ;
}
/************************************************************************/
/* mainè╓Éö */
/* GUIâWâFâlâîü[â^é┼âVâFâïâAâvâèùpé╔É╢ɼé╡é╜ÅΩìçüAé▒é±é╚è┤é╢é╔é╚éΘ */
/* é╜é╛é╡üAargcé╞argvé═Æ╟ë┴òöò¬ */
/************************************************************************/
void main(int argc, char *argv[])
{
static MMICTRL mmi ={
SCREEN16 | SCREENIGNORE, /* âyü[âW0æñë≡æ£ôx(16ÉF) */
SCREENUNUSED, /* âyü[âW1æñë≡æ£ôx */
0, /* Åæé½ì₧é▌âyü[âW */
SCREENAVAILABLE, /* ò\Īâyü[âW(ÉFÉöû│ê╦æ╢) */
0, /* ò\ĪâvâëâCâIâèâeâB */
SCREENAVAILABLE, /* ÉFÉö(ëµû╩ÿgÄ⌐ô«É▌ÆΦ) */
SCREENEXPAND, /* VRAMé╠ëíé╠Æ╖é│ */
/* (ë≡æ£ôxû│ê╦æ╢) */
0, /* âüâéâèù╠êµé╠æσé½é│ */
NULL, /* âüâéâèù╠êµé╠âAâhâîâX */
0, /* âåü[âUù╠êµé╠æσé½é│ */
NULL, /* âåü[âUù╠êµé╠âAâhâîâX */
0, 0, /* ëµû╩ÿg lupx,lupy */
0, 0, /* rdwx,rdwy */
-16384, -16384, /* ê┌ô«ÿg lupx,lupy */
16383, 16383, /* rdwx,rdwy */
15, /* öÆÉF */
8, /* ìòÉF */
7,